The ABox is a multi-purpose dialog box that can be used to provide a user with a list of topics, where each list contains one or more "slides" on that topic. The ABox is depicted below in a rough diagram:
[ Please forgive the crude ASCII graphics, but you are looking at the real ABox while reading this after-all ]
+--------------------------------------+
|+-----------+-+ +------------------+-+|
|| topic |^| | slide field |^||
|| list with | | | for PICT and | ||
|| scrollbar | | | TEXT (styled too)| ||
|| | | | with scrollbar | ||
|| | | | as required | ||
|| | | | | ||
|| |v| | |v||
|+-----------+-+ +------------------+-+|
| +------------------+ |
| | slide title STR | |
| version info +------------------+ |
| ^0^1^2^3 Play << >> OK |
+--------------------------------------+
prev & next buttons
Topics (and their respective slides within the topics) are just loose files within a predetermined folder, possibly organized
with subfolders. This folder (specified by the application programmer) is recursively walked to gather up a topic list, which is simply a list of files that contain TSAb resources (more on this later), and is then displayed in the left area of the dialog box. This way we can create a poor-person's outline just by organizing the topic/slide files into folders and subfolders. Subtopics (and subfolders) are appropriately indented in the topic list. If a folder contains a file of the same name, the file is substituted for the folder name and displayed in the list where the folder would be.
When the user clicks either the "<<prev<<" or ">>next>>" buttons the previous or next slide in the current slide list is displayed. The buttons are appropriately disabled when at the start or end of a slide list. The left/right arrow keys are keyboard shortcuts for the previous and next buttons.
Additionally, the "play" button (or the spacebar, as a shortcut) will cause the slide's sound or controller-less movie to replay
(movies that have a controller already provide their own play button).
The up/down arrow keys will traverse the topic list.